// main.js 顶部添加
(function () {
  if (typeof window === 'undefined') return;
  
  // 备份原始ResizeObserver
  const OriginalResizeObserver = window.ResizeObserver;
  
  // 自定义ResizeObserver，使用防抖
  window.ResizeObserver = class extends OriginalResizeObserver {
    constructor(callback) {
      // 使用防抖包装回调
      let lastCallTime;
      let pending = false;
      const debouncedCallback = () => {
        if (pending) return;
        pending = true;
        requestAnimationFrame(() => {
          const now = Date.now();
          // 如果连续触发时间小于100ms，则忽略中间的状态
          if (!lastCallTime || now - lastCallTime > 100) {
            callback(...arguments);
            lastCallTime = now;
          }
          pending = false;
        });
      };
      super(debouncedCallback);
    }
  };
})();


import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'

const app = createApp(App);

// 设置Vue全局错误处理器
app.config.errorHandler = (err, vm, info) => {
  // 判断错误是否为ResizeObserver错误
  if (err.message && err.message.includes('ResizeObserver')) {
    return; // 静默处理
  }
  // 其他错误可以继续处理（比如输出到控制台）
  console.error(err);
};

// 捕获全局的Promise错误（可能由异步操作引起）
window.addEventListener('unhandledrejection', (event) => {
  if (event.reason && event.reason.message && event.reason.message.includes('ResizeObserver')) {
    event.preventDefault(); // 阻止默认处理（控制台输出）
  }
});

app.use(router);
app.use(ElementPlus, {
  locale: zhCn,
});

app.mount('#app');